package com.education.ai.repository;

import com.education.ai.entity.MediaResource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 多媒体资源数据访问接口
 */
@Repository
public interface MediaResourceRepository extends JpaRepository<MediaResource, Long> {
    
    /**
     * 根据资源类型查询多媒体资源
     */
    List<MediaResource> findByResourceType(String resourceType);
    
    /**
     * 根据学科查询多媒体资源
     */
    List<MediaResource> findBySubject(String subject);
    
    /**
     * 根据年级查询多媒体资源
     */
    List<MediaResource> findByGrade(String grade);
    
    /**
     * 根据学科和年级查询多媒体资源
     */
    List<MediaResource> findBySubjectAndGrade(String subject, String grade);
    
    /**
     * 根据学科、年级和教学主题查询多媒体资源
     */
    List<MediaResource> findBySubjectAndGradeAndTopic(String subject, String grade, String topic);
    
    /**
     * 根据资源类型和学科查询多媒体资源
     */
    List<MediaResource> findByResourceTypeAndSubject(String resourceType, String subject);
    
    /**
     * 根据资源类型、学科和年级查询多媒体资源
     */
    List<MediaResource> findByResourceTypeAndSubjectAndGrade(String resourceType, String subject, String grade);

    /**
     * 根据教师ID查询多媒体资源
     */
    List<MediaResource> findByTeacherId(String teacherId);

    /**
     * 根据教师ID分页查询多媒体资源
     */
    Page<MediaResource> findByTeacherId(String teacherId, Pageable pageable);
} 